home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-09 | 7.8 KB | 176 lines | [TEXT/KAHL] |
- Mon Oct 16 19:58:08 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a number of small bugs kindly brought to my attention by
- Adam de Boor (bsw!adam@uunet.UU.NET). Thanks Adam! In particular,
- changed the behavior for the -a (ANSI) option so that the
- generated prototypes use int rather than size_t for the LEN
- parameter. It was too ugly having to #include <stddef.h> all
- over the place...
-
- * Added a majorly neat hack to Bool_Array, suggested by rfg.
- The basic idea was to throw away the Ullman array technique.
- The Ullman array was used to remove the need to reinitialize all
- the Bool_Array elements to zero everytime we needed to determine
- whether there were duplicate hash values in the keyword list.
- The current trick uses an `iteration number' scheme, which takes
- about 1/3 the space and reduces the overall program running a
- time by about 20 percent for large input! The hack works as
- follows:
-
- 1. Dynamically allocation 1 boolean array of size k.
- 2. Initialize the boolean array to zeros, and consider the first
- iteration to be iteration 1.
- 2. Then on all subsequent iterations we `reset' the bool array by
- kicking the iteration count by 1.
- 3. When it comes time to check whether a hash value is currently
- in the boolean array we simply check its index location. If
- the value stored there is *not* equal to the current iteration
- number then the item is clearly *not* in the set. In that
- case we assign the iteration number to that array's index
- location for future reference. Otherwise, if the item at
- the index location *is* equal to the iteration number we've
- found a duplicate. No muss, no fuss!
-
- Thu Oct 12 18:08:43 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Updated the version number to 1.9.
-
- * Added support for the -C option. This makes the contents of
- all generated tables `readonly'.
-
- * Changed the handling of generated switches so that there is
- only one call to str[n]?cmp. This *greatly* reduces the size of
- the generated assembly code on all compilers I've seen.
-
- * Fixed a subtle bug that occurred when the -l and -S option
- was given. Code produced looked something like:
-
- if (len != key_len || !strcmp (s1, resword->name)) return resword;
-
- which doesn't make any sense. Clearly, this should be:
-
- if (len == key_len && !strcmp (s1, resword->name)) return resword;
-
- Sat Sep 30 12:55:24 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a stupid bug in Key_List::print_hash_function that manifested
- itself if the `-k$' option was given (i.e., only use the key[length]
- character in the hash function).
-
- Mon Jul 24 17:09:46 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a bug in PRINT_MIN_MAX that resulted in MAX_INT being printed
- for the MIN_KEY_LEN if there was only 1 keyword in the input file
- (yeah, that's a pretty unlikely occurrence, I agree!).
-
- * Fixed PRINT_HASH_FUNCTION and PRINT_LOOKUP_FUNCTION in keylist.c
- so that the generated functions take an unsigned int length argument.
- If -a is enabled the prototype is (const char *str, size_t len).
-
- Fri Jul 21 13:06:15 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed a horrible typo in PRINT_KEYWORD_TABLE in keylist.cc
- that prevented links from being printed correctly.
-
- Sun Jul 9 17:53:28 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed the ./tests subdirectory Makefile so that it
- uses $(CC) instead of gcc.
-
- Sun Jul 2 12:14:04 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Moved comment handling from keylist.c to readline.c. This
- simplifies the code and reduces the number of malloc calls.
-
- * Fixed a number of subtle bugs that occurred when -S was
- combined with various and sundry options.
-
- * Added the -G option, that makes the generated keyword table
- a global static variable, rather than hiding it inside
- the lookup function. This allows other functions to directly
- access the contents in this table.
-
- Sat Jul 1 10:12:21 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added the "#" feature, that allows comments inside the keyword
- list from the input file.
-
- * Also added the -H option (user can give the name of the hash
- function) and the -T option (prevents the transfer of the type decl
- to the output file, which is useful if the type is already defined
- elsewhere).
-
- Fri Jun 30 18:22:35 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added Adam de Boor's changes. Created an UNSET_OPTION macro.
-
- Sat Jun 17 10:56:00 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Modified option.h and option.c so that all mixed operations
- between integers and enumerals are cast correctly to int.
- This prevents errors in some brain-damaged C compilers.
-
- Fri Jun 16 14:13:15 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Modified the -f (FAST) option. This now takes an argument.
- The argument corresponds to the number of iterations used
- to resolve collisions. -f 0 uses the length of the
- keyword list (which is what -f did before). This makes
- life much easier when dealing with large keyword files.
-
- Wed Jun 7 23:07:13 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Updated to version 1.8 in preparation to release to Doug Lea
- and FSF.
-
- * Added the -c (comparison) option. Enabling this
- will use the strncmp function for string comparisons.
- The default is to use strcmp.
-
- Tue Jun 6 16:32:09 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed another stupid typo in xmalloc.c (XMALLOC). I accidentally
- left the ANSI-fied prototype in place. This obviously
- fails on old-style C compilers.
-
- * Fixed stupid typos in PRINT_SWITCH from the keylist.c. This
- caused the -D option to produce incorrect output when used
- in conjunction with -p and -t.
-
- * Replaced the use of STRCMP with STRNCMP for the generated
- C output code.
-
- Fri Jun 2 23:16:01 1989 Doug Schmidt (schmidt at trinite.ics.uci.edu)
-
- * Added a new function (XMALLOC) and file (xmalloc.c). All
- calls to MALLOC were replaced by calls to XMALLOC. This
- will complain when virtual memory runs out (don't laugh,
- this has happened!)
-
- Thu Jun 1 21:10:10 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed a typo in options.c that prevented the -f option
- from being given on the command-line.
-
- Wed May 3 17:48:02 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Updated to version 1.7. This reflects the recent major changes
- and the new C port.
-
- * Fixed a typo in perfect.c perfect_destroy that prevented the actual
- maximum hash table size from being printed.
-
- * Added support for the -f option. This generates the perfect
- hash function ``fast.'' It reduces the execution time of
- gperf, at the cost of minimizing the range of hash values.
-
- Tue May 2 16:23:29 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Enabled the diagnostics dump if the debugging option is enabled.
-
- * Removed all calls to FREE (silly to do this at program termination).
-
- * Ported gperf to C. From now on both K&R C and GNU G++ versions
- will be supported.
-
-